package poi;

import org.apache.poi.xwpf.usermodel.XWPFTable;

import java.util.Collection;
import java.util.Set;


/**
 * 解析文档的能力
 *
 * @author kai
 */
public interface IDocumentParse<E> {

    /**
     * 解析 word text
     *
     * @param paragraph paragraph
     * @param tempScanData 临时数据
     * @return
     */
    E parseDocxParagraph(String paragraph, TempScanData tempScanData);

    /**
     * 解析整个表格
     *
     * @param xwpfTable xwpfTable
     * @return
     */
    Collection<E> parseDoxcTable(XWPFTable xwpfTable, Collection<E> collection);

    /**
     * 设置解析完成标志，理论上每个解析器只能解析一次
     * @param parsed
     */
    void setParsed(boolean parsed);

    /**
     * 是否解析过了，理论上每个解析器只能解析一次
     */
    boolean isParsed();

    /**
     * 设置正则(可支持设置多个)
     */
    void setRegex(String... regexStr);

    /**
     * 设置解析位置
     */
    void setAllPosition(int... x);

    /**
     * 下一个位置
     */
    int nextPosition();

}
